home *** CD-ROM | disk | FTP | other *** search
- /*
- ** XFA Play - Example Of How To Play An XFA Anim In AmigaE
- **
- ** Code Written By: Fabio Rotondo
- ** Based Upon An Original Blitz2 Code By Mik Of ClassX
- **
- ** This code is Public Domain.
- **
- ** Written For ClassX
- **
- */
-
- MODULE 'xfa','libraries/xfa','dos/rdargs'
-
- PROC main()
- DEF frames
- DEF args=NIL:PTR TO LONG, rdargs
-
- WriteF('XFAPlay V0.1 - By Fabio Rotondo.\n')
-
- rdargs:=ReadArgs('NAME/A', args, NIL)
- IF rdargs
- IF (xfabase:=OpenLibrary('xfa.library',0))
- IF (frames:=xfa_getframes(args[0]))
- xfa_play(args[0], frames)
- ELSE
- WriteF('File not found or read error.\n')
- ENDIF
- CloseLibrary(xfabase)
- ELSE
- WriteF('Cannot Open xfa.library\n')
- ENDIF
- FreeArgs(rdargs)
- ELSE
- WriteF('Bad Args.\n')
- ENDIF
- CleanUp(0)
- ENDPROC
-
- PROC xfa_getframes(fname:PTR TO CHAR)
- DEF head:xfa_head
-
- IF XfA_LoadAnim (fname, head, 0, FALSE)<>0
- WriteF(' XfA_LoadAnim Error.\n')
- ELSE
- RETURN head.nframes
- ENDIF
- ENDPROC FALSE
-
- PROC xfa_play(fname:PTR TO CHAR, frames)
- DEF err
-
- IF XfA_AllocFrames(frames)
- IF (err:=XfA_LoadAnim(fname,0,0,TRUE))
- WriteF('Load Error: \d\n', err)
- ELSE
- IF XfA_OpenPlayStuff(FALSE)
- XfA_Play(TRUE, FALSE, TRUE)
-
- XfA_ClosePlayStuff()
- ELSE
- WriteF('Error Opening XFA Stuff\n')
- ENDIF
- ENDIF
- XfA_FreeFrames()
- ELSE
- WriteF('Allocation Error.\n')
- ENDIF
- ENDPROC
-